package com.fr.data;

import com.fr.base.xml.XMLPrintWriter;
import com.fr.base.xml.XMLReadable;
import com.fr.base.xml.XMLWriter;
import com.fr.base.xml.XMLableReader;
import com.fr.report.parameter.Parameter;
import java.io.Serializable;

public abstract interface TableData extends XMLReadable, XMLWriter, Cloneable, Serializable
{
  public static final String XML_TAG = "TableData";
  public static final TableData EMPTY_TABLEDATA = new TableData()
  {
    private static final long serialVersionUID = 4457423545960500801L;

    public int getColumnCount()
    {
      return 0;
    }

    public String getColumnName(int paramInt)
    {
      return null;
    }

    public Parameter[] getParameters()
    {
      return new Parameter[0];
    }

    public int getRowCount()
    {
      return 0;
    }

    public Object getValueAt(int paramInt1, int paramInt2)
    {
      return null;
    }

    public boolean hasRow(int paramInt)
    {
      return false;
    }

    public void release()
      throws Exception
    {
    }

    public Object clone()
      throws CloneNotSupportedException
    {
      return this;
    }

    public void readXML(XMLableReader paramXMLableReader)
    {
    }

    public void writeXML(XMLPrintWriter paramXMLPrintWriter)
    {
    }

    public boolean equals(Object paramObject)
    {
      return super.equals(paramObject);
    }
  };

  public abstract int getColumnCount()
    throws TableDataException;

  public abstract String getColumnName(int paramInt)
    throws TableDataException;

  public abstract boolean hasRow(int paramInt)
    throws TableDataException;

  public abstract int getRowCount()
    throws TableDataException;

  public abstract Object getValueAt(int paramInt1, int paramInt2)
    throws TableDataException;

  public abstract Parameter[] getParameters();

  public abstract void release()
    throws Exception;

  public abstract Object clone()
    throws CloneNotSupportedException;

  public abstract boolean equals(Object paramObject);
}